// 导出所有公共工具函数
export { uploadFile } from './upload';
export { getCookie } from './request';

/**
 * 格式化文件大小
 * @param size 文件大小（字节）
 * @returns 格式化后的文件大小字符串
 */
export function formatFileSize(size: number | undefined): string {
  if (size === undefined) return '0 B'
  if (size < 1024) return size + ' B'
  if (size < 1024 * 1024) return (size / 1024).toFixed(2) + ' KB'
  if (size < 1024 * 1024 * 1024) return (size / (1024 * 1024)).toFixed(2) + ' MB'
  return (size / (1024 * 1024 * 1024)).toFixed(2) + ' GB'
}

/**
 * 判断文件是否为图片类型
 * @param mimetype 文件MIME类型
 * @returns 是否为图片类型
 */
export function isImageFile(mimetype: string | undefined): boolean {
  if (!mimetype) return false
  return mimetype.startsWith('image/')
}

/**
 * 显示成功消息
 * @param message 消息内容
 */
export function showSuccessMessage(message: string): void {
  import('element-plus').then(({ ElMessage }) => {
    ElMessage.success(message)
  })
}

/**
 * 显示错误消息
 * @param message 消息内容
 */
export function showErrorMessage(message: string): void {
  import('element-plus').then(({ ElMessage }) => {
    ElMessage.error(message)
  })
}

/**
 * 显示警告消息
 * @param message 消息内容
 */
export function showWarningMessage(message: string): void {
  import('element-plus').then(({ ElMessage }) => {
    ElMessage.warning(message)
  })
}

// 远程IP
export const remoteIp = '8.137.37.23'

// 端口号
export const port = 6789

// WebSocket连接地址
export const wsUrl = process.env.NODE_ENV === 'development'
    ? `ws://localhost:${port}`
    : `ws://${remoteIp}:${port}`